/*
 * MonitorMemoria.cpp
 *
 *  Created on: 18/10/2011
 *      Author: diego
 */

#include "MonitorMemoria.h"

// mem_maxima es en MiB
MonitorMemoria::MonitorMemoria(int mem_maxima) {
	this->bytes_x_nodoArbol = 190; // los calculos me dieron 188 bytes x nodo
	this->bytes_x_nodoLista = 85;  // los calculos me dieron 81 bytes x nodo

	this->mem_maxima = mem_maxima * 1024 * 1024; // lo paso a bytes

	this->cont_nodoArbol = 0;
	this->cont_nodoLista = 0;
}

bool MonitorMemoria::hayMemoria(){
	int parcial_arbol = this->bytes_x_nodoArbol * this->cont_nodoArbol;
	int parcial_lista = this->bytes_x_nodoLista * this->cont_nodoLista;

	return ((parcial_arbol + parcial_lista) < this->mem_maxima);
}

void MonitorMemoria::incrementarNodoLista(){
	this->cont_nodoLista++;
}

void MonitorMemoria::incrementarNodoArbol(){
	this->cont_nodoArbol++;
}

void MonitorMemoria::reset(){
	this->cont_nodoArbol = 0;
	this->cont_nodoLista = 0;
}

MonitorMemoria::~MonitorMemoria() {

}

